\documentclass[12pt]{article}
\usepackage{a4wide}

\parindent 0pt
\parskip 6pt

\begin{document}

\thispagestyle{empty}

\rightline{\large\emph{Matthew Thomson}}
\medskip
\rightline{\large\emph{Gonville and Caius College}}
\medskip
\rightline{\large\emph{mt521}}

\vfil

\centerline{\large Part II Project Proposal}
\vspace{0.4in}
\centerline{\Large\bf Dolphin: Networking using Sound}
\vspace{0.3in}
\centerline{\large 06/09/2012}

\vfil

{\bf Project Originator:} Matthew Thomson

\vspace{0.1in}

{\bf Resources Required:} See attached Project Resource Form

\vspace{0.5in}

{\bf Project Supervisor:} Oliver R. A. Chick

\vspace{0.2in}

{\bf Signature:}

\vspace{0.5in}

{\bf Director of Studies:}  Graham Titmus and Peter Robinson

\vspace{0.2in}

{\bf Signature:}

\vspace{0.5in}

{\bf Overseers:} Peter Robinson and Robert Watson

\vspace{0.2in}

{\bf Signatures:}

\vfil
\newpage


\section*{Introduction and Description of the Work}

This project involves the creation of a system which will allow a user to encode
bits as sound waves, and correspondingly decode a sound file to retrieve the
data. It will also be possible to multiplex the information, combining multiple
sound files into one or altering the sound to include another file.

The concept would then have potential for mobile data transference. A mobile
phone has various ways of transmitting data to another mobile phone: e-mail via
WiFi or 3G; Bluetooth; multimedia messages; moving a portable storage card from
one phone to the other; or in some older models, infrared. These techniques can
be inconvenient, costly to the user and often power-hungry. It is also not
possible to multiplex the files sent into one stream, though using multiple
attachments in an e-mail does send multiple files in one session but this is not
the same. A more recent alternative to transfer information from one mobile
device to another is using QR codes, which can be generated as needed to display
contact information, text files, web-addresses and more. However, the way a QR
code transmits files such as images or larger text files is to upload them to a
server and simply encode the web-address, which brings back the issue of power
usage and cost. Audio playback requires far less power than the internet or
Bluetooth connections, as demonstrated in the paper referenced below [1]. It
would therefore seem that using frequency modulated sound waves, in much the
same way that dolphins communicate, to transmit information from one device to
another can be faster, cheaper and more power efficient than other methods
available.

One example of this kind of technology is slow-scan television, which has been
available for over fifty years and involves encoding a single frame as a series
of modulated sound waves. Slow-scan television, hereafter referred to as
\emph{``SSTV''}, is a method mainly employed by amateur radio enthusiasts as it
operates on voice (audible) frequencies. It was also used in early space
exploration, such as in the 1959 Russian ``Luna 3'' mission to transmit
images of the far side of the moon back to Earth, as the sounds can be sent
using the same radio signals the astronauts used to keep in contact with Mission
Command meaning a separate, dedicated transmission system is not needed. It is
not, however, possible to multiplex information in a sound with SSTV.
Furthermore, as this style is predominantly used by amateur radio enthusiasts
the default behaviour of most software is to transmit a sound whilst the
original image is being scanned, rather than give the option to save to disk for
alternative transfer methods such as email or portable physical storage, which
is a feature that would open the technique to areas beyond amateur radio.


\section*{Resources Required}

Two Android mobile phones will be required for testing the mobile application.


\section*{Starting Point}

The IB lecture course ``Computer Networking'' contained theory on multiplexing
information for transmission which will likely prove useful in combining the
sound files into one. It also covered the ISO layer model, which I will be
implementing for this project. The Part II courses ``Digital Signal Processing''
and ``Mobile and Sensor Systems'' also contain relevent information on
transferring data wirelessly.


\section*{Substance and Structure of the Project}

The project would involve writing software to load and then interpret data
and sounds in a variety of formats. The analysis of files and sounds will lead
to conversion between the mediums and optimisation to condense as much of the
information into as short a sound as possible. The feature to add further files
will also be developed, allowing for multiple files to share one sound file of
similar length, increasing the data transfer rate of the technology.

The core element of the project will create a new method of data transference,
essentially creating a new physical layer, handling how bits are sent and
received in audio form. As with human speech the layer will be half-duplex as
the input will be coming from a microphone and if the receiver's own speakers
are outputting an audio signal it will listen partly to itself and the two
transmissions will clash, producing a nonsense result. The project will also
have aspects of the data-link layer as simply having the capability to send
information will not be enough to actually use the technique, a set of protocols
will need to be established to send data back and forth. Using ISO layers is
preferable for this project as it means any data from higher layers can be sent
through this technique, including SSTV images, TCP and UDP packets, IP packets
and more.

Given the project will create a new implementation of the ISO layers, additional
features can be included that use the layer thanks to the interfaces that have
been established between the layers, for example the software will offer the
chance to encrypt the files sent in the presentation layer using a password of
the user's choosing, and correspondingly prompt the user to enter a password if
an encrypted sound is loaded. It will then decode the sound based on the
password entered, and produce a scrambled result if the password was incorrect.

An extension to the project will be to make a mobile app that accomplishes most
of the same functionality so Java will be used as Android code is based on Java,
and requires very little adaption to work. This will then aim to transfer
information using less power than other available means, and preferably faster.

The project has the following main sections:

\begin{enumerate}

\item A study of the current techniques available to convert data to sound,
and vice versa, including how much bandwidth these techniques use with
multiplexing potential in mind.

\item A study of Java's capability to analyse the bit structure of various files
and create sound files accordingly.

\item Developing and testing the code for the techniques investigated in (1)

\item Developing and testing the code for adding mobile functionality,
multiplexing and encryption to the code developed in (3).

\item Evaluation and the preparation of examples to demonstrate that the
implementation has been successful.

\item Writing the dissertation.

\end{enumerate}

If time allows the software will be ported to a mobile application in the
Android language. This will allow sounds to be received via the phone
connection, or simply loaded onto the phone's internal storage.


\section*{Reference}
\begin{description}
\item {[1]} \emph{An Analysis of Power Consumption in a Smartphone}, A. Carroll
and G. Heiser, Technical Report, University of New South Wales, p4,6,7 \\
({\tt http://static.usenix.org/events/usenix10/tech/full\_papers/Carroll.pdf})
\end{description}


\section*{Success Criteria}

The following should be achieved:

\begin{itemize}

\item Encode an image as a sound

\item Encode multiple images as a single sound

\item Decode a sound into a file

\item Write the encoded sounds and decoded files to disk

\item Allow optional encryption on the output, and decrypt corresponding input

\end{itemize}

\section*{Timetable and Milestones}

Starting 19 October 2012

\subsection*{Research 1, 2 November 2012}

Study existing file to sound formats, namely SSTV standards. Investigate what
each pixel translates to, what each frequency translates to. Revise theory on
multiplexing signals in a single output.


\subsection*{Research 2, 16 November 2012}

Continue studying ways to multiplex signals using frequency modulation. Study
Java image and audio manipulation.

Milestone: Create basic test code for encoding/decoding bit sequences as
distinct sounds.


\subsection*{Development 1, 30 November 2012}

Begin actual code for complex bit structures converted into sounds, develop two
or three alternatives to compare efficiency.

Milestone: Can encode/decode any bit sequence reliably, purpose of sequence is
irrelevant.


\subsection*{Development 2, 14 December 2012}

Begin developing code for multiplexing, create new header in sound file with
space for number of images stored, boolean encrypted flag.

Milestone: New sound file header leads to reliable decoding of various
recognised file types.


\subsection*{Development 3, 11 January 2013}

Finish multiplexing code, add security encryption functionality, add decrypt
prompts, refine code from previous sections.

Milestone: Program works, possibly with minor glitches.


\subsection*{Development 4, 25 January 2013}

Fix bugs. Start extension, research how mobile processor differs from PC. Begin
transferring code to android phone, resolve compatibility issues.


\subsection*{Development 5, 8 February 2013}

Complete extension, test actual power consumption compared to Bluetooth and data
connections.

Milestone: Mobile app and PC software complete, verify functionality the same
on each.


\subsection*{Evaluation 1, 22 February 2013}

Write Introduction, Preparation, start Implementation.

Milestones: Introduction and Preparation complete.

\subsection*{Evaluation 2, 8 March 2013}

Write Implementation.

Milestone: Implementation complete.

\subsection*{Evaluation 3, 22 March 2013}

Evaluation and conclusion. Finish dissertation.

Milestone: Deliver draft dissertation to supervisor.

\subsection*{Complete, 19 April 2013}

Revise disseration and submit.

Milestone: Submitted dissertation.

\end{document}

